<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>css波浪</title>
    <style>
      * {
        padding: 0;
        margin: 0;
      }

      h1 {
        font-family: "Lucida Sans", "Lucida Sans Regular", "Lucida Grande",
          "Lucida Sans Unicode", Geneva, Verdana, sans-serif;
        font-weight: 300;
      }

      body {
        width: 100vw;
        height: 100vh;
        background: linear-gradient(
          60deg,
          rgba(84, 58, 183, 1) 0%,
          rgba(0, 172, 193, 1) 100%
        );
        color: wheat;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
      }

      .waves {
        position: relative;
        margin-bottom: -7px;
        width: 100%;
        height: 15vh;
        min-height: 150px;
      }

      .parallax > use {
        animation: move-forever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite;
      }

      /* 选择的一个use */

      .parallax > use:nth-child(1) {
        /* 延迟 2s 执行 */
        animation-delay: -2s;
        /* 7s 内 执行完毕 */
        animation-duration: 7s;
      }

      .parallax > use:nth-child(2) {
        animation-delay: -3s;
        animation-duration: 10s;
      }

      .parallax > use:nth-child(3) {
        animation-delay: -4s;
        animation-duration: 13s;
      }

      .parallax > use:nth-child(4) {
        animation-delay: -5s;
        animation-duration: 18s;
      }

      .chunk {
        height: 300px;
        color: white;
        background-color: white;
      }

      @keyframes move-forever {
        0% {
          transform: translate3d(-90px, 0, 0);
        }

        100% {
          transform: translate3d(085px, 0, 0);
        }
      }
    </style>
  </head>

  <body>
    <!-- 头部区域 -->
    <h1>CSS波浪</h1>
    <div>
      <svg
        class="waves"
        viewBox="0 24 150 28"
        preserveAspectRatio="none"
        shape-rendering="auto"
      >
        <!-- 形状容器 -->
        <defs>
          <path
            id="gentle-wave"
            d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"
          />
        </defs>
        <!-- 组合形状 -->
        <g class="parallax">
          <use
            xlink:href="#gentle-wave"
            x="48"
            y="0"
            fill="rgba(255,255,255,0.7"
          />
          <use
            xlink:href="#gentle-wave"
            x="48"
            y="3"
            fill="rgba(255,255,255,0.5)"
          />
          <use
            xlink:href="#gentle-wave"
            x="48"
            y="5"
            fill="rgba(255,255,255,0.3)"
          />
          <use xlink:href="#gentle-wave" x="48" y="7" fill="#fff" />
          <use xlink:href="#gentle-wave" x="48" y="9" fill="#fff" />
        </g>
      </svg>
      <div class="chunk"></div>
    </div>
  </body>
</html>
